The present invention relates to a picture coding and decoding technology, and more particularly, to an intra coding and decoding technology.
As a representative compression coding mode of moving pictures, there is an MPEG-4 AVC/H.264 standard. According to MPEG-4 AVC/H.264, coding is performed in units of macroblocks acquired by partitioning a picture into a plurality of rectangular blocks. The size of the macroblock is defined as 16×16 pixels in a luma signal regardless of the picture size. While a chroma signal is also included in the macroblock, the size of the chroma signal included in the macroblock differs in accordance with a chroma format of a picture to be coded. Thus, in a case where the chroma format is 4:2:0, the size of the chroma signal is 8×8 pixels, in a case where the chroma format is 4:2:2, the size of the chroma signal is 8×16 pixels, and, in a case where the chroma format is 4:4:4, the size of the chroma signal is 16×16 pixels.
As the chroma format, the ratio of sampled pixel numbers of three signals of one luma information unit and two chroma information units is denoted by X:Y:Z. As the chroma formats of a picture that is a target for being coded and decoded in accordance with MPEG-4 AVC/H.264, there are 4:2:0, 4:2:2, 4:4:4, and monochrome.
FIGS. 3A to 3E are diagrams that illustrate the chroma formats of a picture. In the figures, “x” denotes the position of a pixel of a luma signal on the plane of the screen, and “◯” denotes the position of a pixel of a chroma signal.
The chroma format of 4:2:0 illustrated in FIG. 3A is a chroma format in which chroma signals are sampled in both horizontal and vertical directions at a half density with respect to luma signals. In addition, in the chroma format of 4:2:0, chroma signals may be sampled at positions illustrated in FIG. 3E.
The chroma format of 4:2:2 illustrated in FIG. 3B is a chroma format in which chroma signals are sampled in the horizontal direction at a half density, and in the vertical direction at the same density with respect to luma signals.
The chroma format of 4:4:4 illustrated in FIG. 3C is a chroma format in which chroma signals and luma signals are sampled at the same density.
The chroma format of monochrome illustrated in FIG. 3D is a chroma format that is configured only by luma signals without any chroma signal.
While the luma signals and the chroma signals are set so as to share coding information such as motion compensation and are coded and decoded, in the chroma format of 4:4:4, a structure is also provided in which one luma signal and two chroma signals are independently coded and decoded as three monochrome signals.
In the AVC/H.264 mode, a technique is used in which a prediction is made based on coded/decoded blocks within the coding/decoding target pixel. Such a technique is called an intra prediction. In addition, motion compensation is used in which a coded/decoded picture is set as a reference picture, and a motion from the reference picture is predicted. A technique for predicting a motion based on the motion compensation is called an inter prediction.
First, in an intra prediction made in intra coding according to the AVC/H.264 mode, units in which switching between intra prediction modes is performed will be described. FIGS. 4A to 4C are diagrams that illustrate the units in which switching between intra prediction modes is performed. In intra coding according to the AVC/H.264 mode, as the units in which switching between intra prediction modes is performed, three types including a “4×4 intra prediction”, a “16×16 intra prediction”, and an “8×8 intra prediction” are prepared.
In the “4×4 intra prediction”, luma signals of a macroblock (a luma signal 16×16 pixel block and a chroma signal 8×8 pixel block) are partitioned into 16 4×4 pixel blocks, a mode is selected from among 9 types of 4×4 intra prediction modes in units of the partitioned 4×4 pixels, and intra predictions are sequentially made (FIG. 4A).
In the “16×16 intra prediction”, a mode is selected from among 4 types of 16×16 intra prediction modes in units of 16×16 pixel blocks of luma signals, and intra predictions are made (FIG. 4B).
In the “8×8 intra prediction”, luma signals of a macroblock are partitioned into 4 8×8 pixel blocks, a mode is selected from among 9 types of 8×8 intra prediction modes in units of the partitioned 8×8 pixels, and intra predictions are sequentially made (FIG. 4C).
In addition, in intra predictions of chroma signals, in a case where the chroma format is 4:2:0 or 4:2:2, a mode is selected from among 4 types of intra prediction modes of chroma signals in units of macroblocks, and the intra predictions are made.
In a case where a 16×16 intra prediction is selected, the intra prediction mode of a luma signal is coded as one mode of a syntax element mb_type representing the type of a macroblock, and an intra prediction mode of a chroma signal is separately coded.
In a case where a 4×4 intra prediction is selected, after intra prediction modes of 16 luma signals are consecutively coded, an intra prediction mode of a chroma signal is coded.
In a case where an 8×8 intra prediction is selected, after intra prediction modes of four luma signals are consecutively coded, an intra prediction mode of a chroma signal is coded.
Next, units in which an inter prediction is made in inter coding according to the AVC/H.264 mode will be described. FIGS. 5A to 5H are diagrams that illustrate macroblock partitions and sub-macroblock partitions. Here, for the simplification of description, only pixel blocks of luma signals are illustrated. In the MPEG series, a macroblock is defined as a square area. Generally, in the MPEG series including the AVC/H. 264 mode, a block that is defined as 16×16 pixels (16 horizontal pixels and 16 vertical pixels) is called a macroblock. In addition, in the AVC/H.264 mode, a block that is defined as 8×8 pixels is called a sub-macroblock. A macroblock partition represents a small block acquired by further partitioning the macroblock for a motion compensation prediction. A sub-macroblock partition represents a small block acquired by further partitioning the sub-macroblock for a motion compensation prediction.
FIG. 5A is a diagram illustrating that a macroblock is configured by one macroblock partition that is configured by luma signals of 16×16 pixels and two chroma signals corresponding thereto. Here, such a configuration will be referred to as a macroblock type of a 16×16 mode.
FIG. 5B is a diagram illustrating that a macroblock is configured by two macroblock partitions each being configured by luma signals of 16×8 pixels (horizontal 16 pixels and vertical 8 pixels) and two chroma signals corresponding thereto. These two macroblock partitions are vertically aligned. Here, such a configuration will be referred to as a macroblock type of a 16×8 mode.
FIG. 5C is a diagram illustrating that a macroblock is configured by two macroblock partitions each being configured by luma signals of 8×16 pixels (horizontal 8 pixels and vertical 16 pixels) and two chroma signals corresponding thereto. These two macroblock partitions are horizontally aligned. Here, such a configuration will be referred to as a macroblock type of an 8×16 mode.
FIG. 5D is a diagram illustrating that a macroblock is configured by four macroblock partitions each being configured by luma signals of 8×8 pixels and two chroma signals corresponding thereto. Each two of these four macroblock partitions are aligned vertically and horizontally. Here, such a configuration will be referred to as a macroblock type of an 8×8 mode.
FIG. 5E is a diagram illustrating that a sub-macroblock is configured by one sub-macroblock partition that is configured by luma signals of 8×8 pixels and two chroma signals corresponding thereto. Here, such a configuration will be referred to as a sub-macroblock type of the 8×8 mode.
FIG. 5F is a diagram illustrating that a sub-macroblock is configured by two sub-macroblock partitions each being configured by luma signals of 8×4 pixels (horizontal 8 pixels and vertical 4 pixels) and two chroma signals corresponding thereto. These two sub-macroblock partitions are vertically aligned. Here, such a configuration will be referred to as a sub-macroblock type of an 8×4 mode.
FIG. 5G is a diagram illustrating that a sub-macroblock is configured by two sub-macroblock partitions each being configured by luma signals of 4×8 pixels (horizontal 4 pixels and vertical 8 pixels) and two chroma signals corresponding thereto. These two sub-macroblock partitions are horizontally aligned. Here, such a configuration will be referred to as a sub-macroblock type of a 4×8 mode.
FIG. 5H is a diagram illustrating that a sub-macroblock is configured by four sub-macroblock partitions each being configured by luma signals of 4×4 pixels and two chroma signals corresponding thereto. Each two of these four sub-macroblock partitions are aligned vertically and horizontally. Here, such a configuration will be referred to as a sub-macroblock type of a 4×4 mode.
In the AVC/H.264 coding mode, a structure is employed in which any one of the above-described motion compensation block sizes can be selected and used. First, as the motion compensation block size in the unit of a macroblock, any one of macroblock types of the 16×16, 16×8, 8×16, and 8×8 modes may be selected. In a case where the macroblock type of the 8×8 mode is selected, as the motion compensation block size in the unit of a sub-macroblock, any one of the sub-macroblock types of the 8×8, 8×4, 4×8, and 4×4 modes may be selected.
Non-Patent Document 1: ISO/IEC 14496-10 Information technology—Coding of audio-visual objects—Part 10: Advanced Video Coding is an example of related art.
When information relating to the intra prediction mode of a picture signal is to be coded, information relating to the intra prediction mode of a luma signal and information relating to the intra prediction mode of a chroma signal are coded and are arranged within a bitstream. However, at that time, in a case where the arrangement is not in correspondence with the chroma format, the processing efficiency may be degraded.